home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / flexcat1_4.lha / flexcat / src / FlexCat_cat.c < prev    next >
C/C++ Source or Header  |  1994-10-24  |  5KB  |  143 lines

  1. /****************************************************************
  2.    This file was created automatically by `FlexCat V1.4'
  3.    from "0.ct".
  4.  
  5.    Do NOT edit by hand!
  6. ****************************************************************/
  7.  
  8. /****************************************************************
  9.     This file uses the auto initialization possibilities of
  10.     Dice and SAS/C, respectively.
  11.  
  12.     Dice does this by using the keywords __autoinit and
  13.     __autoexit, SAS uses names beginning with _STI or
  14.     _STD, respectively.
  15.  
  16.     Using this file you don't have *all* possibilities of
  17.     the locale.library. (No Locale or Language arguments are
  18.     supported when opening the catalog. However, these are
  19.     *very* rarely used, so this should be sufficient for most
  20.     applications.
  21. ****************************************************************/
  22.  
  23.  
  24. /*
  25.     Include files and compiler specific stuff
  26. */
  27. #include <clib/exec_protos.h>
  28. #include <clib/locale_protos.h>
  29.  
  30. #if defined(__SASC)  ||  defined(_DCC)
  31. #include <pragmas/exec_pragmas.h>
  32. #include <pragmas/locale_pragmas.h>
  33. #else
  34. #error "Don't know how to handle your compiler."
  35. #endif
  36.  
  37. #ifdef __SASC
  38. #define __autoinit
  39. #define __autoexit
  40. #endif
  41.  
  42.  
  43. /*
  44.     Variables
  45. */
  46. struct FC_Type
  47. {   LONG   ID;
  48.     STRPTR Str;
  49. };
  50. const struct FC_Type _msgMemoryError = { 0, "Out of memory!" };
  51. const struct FC_Type _msgWarning = { 1, "%s, Line %d; warning: " };
  52. const struct FC_Type _msgExpectedHex = { 2, "Expected hex character (one of [0-9a-4A-F])." };
  53. const struct FC_Type _msgExpectedOctal = { 3, "Expected octal character (one of [0-7])." };
  54. const struct FC_Type _msgNoCatalogDescription = { 4, "Cannot open catalog description %s." };
  55. const struct FC_Type _msgNoLengthBytes = { 5, "LengthBytes > %d (sizeof long) not possible." };
  56. const struct FC_Type _msgUnknownCDCommand = { 6, "Unknown catalog description command" };
  57. const struct FC_Type _msgUnexpectedBlanks = { 7, "Unexpected blanks." };
  58. const struct FC_Type _msgNoIdentifier = { 8, "Missing identifier." };
  59. const struct FC_Type _msgNoLeadingBracket = { 9, "Missing '('." };
  60. const struct FC_Type _msgDoubleID = { 10, "ID number used twice." };
  61. const struct FC_Type _msgDoubleIdentifier = { 11, "Identifier redeclared." };
  62. const struct FC_Type _msgNoMinLen = { 12, "Expected MinLen (character '/')." };
  63. const struct FC_Type _msgNoMaxLen = { 13, "Expected MaxLen (character '/')." };
  64. const struct FC_Type _msgNoTrailingBracket = { 14, "Expected ')'." };
  65. const struct FC_Type _msgExtraCharacters = { 15, "Extra characters at the end of the line." };
  66. const struct FC_Type _msgNoString = { 16, "Unexpected end of file (missing catalog string)." };
  67. const struct FC_Type _msgShortString = { 17, "String too short." };
  68. const struct FC_Type _msgLongString = { 18, "String too long." };
  69. const struct FC_Type _msgNoCatalogTranslation = { 19, "Cannot open catalog translation file %s." };
  70. const struct FC_Type _msgNoCTCommand = { 20, "Missing catalog translation command. (Expected second '#'.)" };
  71. const struct FC_Type _msgUnknownCTCommand = { 21, "Unknown catalog translation command." };
  72. const struct FC_Type _msgNoCTVersion = { 22, "Missing catalog translation version." };
  73. const struct FC_Type _msgNoCTLanguage = { 23, "Missing catalog translation language." };
  74. const struct FC_Type _msgNoCatalog = { 24, "Cannot open catalog file %s." };
  75. const struct FC_Type _msgNoNewCTFile = { 25, "Cannot create catalog translation file %s." };
  76. const struct FC_Type _msgUnknownIdentifier = { 26, "%s missing in catalog description." };
  77. const struct FC_Type _msgNoSourceDescription = { 27, "Cannot open source description file %s." };
  78. const struct FC_Type _msgNoSource = { 28, "Cannot open source file %s." };
  79. const struct FC_Type _msgUnknownStringType = { 29, "Unknown string type." };
  80. const struct FC_Type _msgNoTerminateBracket = { 30, "Unexpected end of line. (Missing ')')" };
  81. const struct FC_Type _msgUsage = { 31, "Usage:\tFlexCat CDFILE/A,CTFILE,CATALOG/K,NEWCTFILE/K,SOURCES/M\n\n"\
  82.     "    CDFILE:\tcatalog description file to scan.\n"\
  83.     "    CTFILE:\tcatalog translation file to scan.\n"\
  84.     "    CATALOG:\tcatalog file to create.\n"\
  85.     "    NEWCTFILE:\tcatalog translation file to create.\n"\
  86.     "    SOURCES:\tsources to create; must be something like sfile=sdfile,\n"\
  87.     "\t\twhere sfile is a sourcefile and sdfile is a source\n"\
  88.     "\t\tdescription file.\n" };
  89. const struct FC_Type _msgNoCTArgument = { 32, "Creating a catalog needs a catalog translation file as argument." };
  90. const struct FC_Type _msgNoBinChars = { 33, "Binary characters in stringtype None." };
  91.  
  92. static struct Catalog *FlexCat_Catalog = NULL;
  93.  
  94. extern struct ExecBase *SysBase;
  95. STATIC struct Library *LocaleBase;
  96.  
  97.  
  98.  
  99.  
  100.  
  101. STATIC __autoinit VOID _STIOpenCatalog(VOID)
  102.  
  103.   {
  104.     const STATIC struct TagItem tags[] =
  105.       {
  106.     { OC_BuiltInLanguage, (ULONG) "english" },
  107.     { OC_Version, 0 },
  108.     { TAG_DONE, 0 }
  109.       };
  110.     if ((LocaleBase = OpenLibrary("locale.library", 38)))
  111.     {
  112.       FlexCat_Catalog = OpenCatalogA(NULL, (STRPTR) "FlexCat.catalog", tags);
  113.     }
  114.   }
  115.  
  116.  
  117.  
  118. STATIC __autoexit VOID _STDCloseCatalog(VOID)
  119.  
  120.   {
  121.     if (LocaleBase)
  122.       {
  123.     CloseCatalog(FlexCat_Catalog);
  124.     FlexCat_Catalog = NULL;
  125.     CloseLibrary(LocaleBase);
  126.       }
  127.   }
  128.  
  129.  
  130.  
  131. STRPTR GetString(struct FC_Type *fcstr)
  132.  
  133.   {
  134.     STRPTR defaultstr;
  135.     LONG strnum;
  136.  
  137.     strnum = fcstr->ID;
  138.     defaultstr = fcstr->Str;
  139.  
  140.     return(FlexCat_Catalog ? GetCatalogStr(FlexCat_Catalog, strnum, defaultstr) :
  141.             defaultstr);
  142.   }
  143.